package filterbar;

import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import java.util.ArrayList;
import java.util.List;

/**
 * *创建时间：2017年01月12日21:27<br>
 * 作者：fuchaoyang<br>
 * 描述：
 */
public class FilterBarHandler {

  ///**
  // * 只有一级，如果不知道，直接调用setDatas即可
  // * 点击筛选项的时候调用getFilterView(index)
  //public void setData(List<? extends FilterDataSet> list) {
  //  //mFilterInfos = trans(list);
  //  if (mFilterInfos == null) {
  //    mFilterInfos = new ArrayList<>();
  //    if (mHasNoLimit) {
  //      mFilterInfos.add(new FilterInfo(mNoLimitText));
  //    }
  //    List<FilterInfo> trans = trans(list);
  //    mFilterInfos.addAll(trans);
  //    // 初始化ListView
  //    View customView = mFilterPanel.getCustomView();
  //    if (customView instanceof ListView) {
  //      initListView((ListView) customView);
  //    }
  //  }
  //}*/
  //*
  // * 多级别
  //
  //public void setDatas(@Nullable List<? extends FilterDataSet> list) {
  //  if (CollectionUtil.isEmpty(list)) return;
  //  // TODO 这里还要添加“不限”,如果是null要不要添加不限
  //  // 构造一级数据
  //  setData(list);
  //  List<? extends FilterDataSet> subDataSet = list.get(0).getSubDataSet();
  //  if (subDataSet != null) {
  //    // 认为有sub
  //    mSubFilterInfos = new ArrayList<>();
  //  }
  //
  //  mSubFilterInfos = new ArrayList<>();
  //  mRootFilterInfos = new ArrayList<>();
  //  // 一级增加了“不限”，FilterInfo的集合就会多一个，二级也必须增加一个，否则就不对应了
  //  if (mHasNoLimit) {
  //    ArrayList<FilterInfo> filterInfos = new ArrayList<>();
  //    filterInfos.add(new FilterInfo(mNoLimitText));
  //    mSubFilterInfos.add(filterInfos);
  //  }
  //
  //  // fixme 这里为了方便不判断是否有sub了，前面直接new
  //  for (int i = 0; i < list.size(); i++) {
  //    List<? extends FilterDataSet> subDataSet = list.get(i).getSubDataSet();
  //    if (subDataSet == null) subDataSet = new ArrayList<>(); // 占位
  //    List<FilterInfo> temp = trans(subDataSet);
  //    // 每个子的筛选项中也要加一个
  //    if (mHasNoLimit) {
  //      temp.add(0, new FilterInfo(mNoLimitText)); // 或者new一个addAll
  //    }
  //    mSubFilterInfos.add(temp);
  //
  //    // TODO 构建第三级别
  //  }
  //}

  /**
   * 数据转换
   */
  @NonNull public static List<FilterInfo> trans(@Nullable List<? extends FilterDataSet> list) {
    List<FilterInfo> filterInfos = new ArrayList<>();
    if (list != null) {
      for (int i = 0; i < list.size(); i++) {
        FilterDataSet dataSet = list.get(i);
        FilterInfo filterInfo = new FilterInfo();
        filterInfo.name = dataSet.getText();
        filterInfo.value = dataSet.getValue();
        filterInfos.add(filterInfo);
      }
    }

    return filterInfos;
  }
}
